# li = []
# for i in range(1, 11):  # 拿到偶数 2 4 6 8 10
#     if i % 2 == 0:
#         li.append(i)
# print(li)
#
# new_li = [i for i in range(1, 11) if i % 2 == 0]  # 对于简单我们可以使用列表推导式
# # 对于复杂的 我们在读代码时候并不能直接明白代码的意思
# print(new_li)
#
# dic = {i: i ** 2 for i in range(1, 6)}
# print(dic)
#
list1 = ['name', 'age', 'sex']
list2 = ['Tom', 20, '男']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}  # i对应的值为 0 1 2  作为下标去取值
print(dict1)

list1 = ['name', 'age', 'sex']
list2 = ['Tom', 20, '男']
# 通过循环   list1中的每一个值 作为键   list2的每一个值 作为值   前提是我要有一个空的字典
"""
dic ={}
list1[0]: list2[0]
{'name': 'Tom', 'age': 20, 'sex': '男'}
dic[list1[0]] = list2[0]   # 向字典中添加值  
"""

computs = {'AUC': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求：提取上述电脑数量⼤于等于200的字典数据

count1 = {key: value for key, value in computs.items() if value >= 200}
print(count1)  # {'MBP': 268, 'DELL': 201}

result = {k: v for k, v in computs.items() if v >= 200}
"""代码是有逻辑性的 不是从头写到尾"""

# li = {i ** 2 for i in range(1, 4)}
# print(li)
#
# a = {x for x in 'abracadabra' if x not in 'abc'}  # 自动去重
# print(a)

a = (x for x in range(1,10))
print(a)
# 返回的是生成器对象
# <generator object <genexpr> at 0x7faf6ee20a50>

# 使用 tuple() 函数，可以直接将生成器对象转换成元组
print(tuple(a))
# (1, 2, 3, 4, 5, 6, 7, 8, 9)

print(tuple((x for x in range(1,10))))
# (1, 2, 3, 4, 5, 6, 7, 8, 9)